import Loading from "./Loading";

export default {
    install: (Vue, options) => {
        /**
         * 1.根据组件生成一个构造函数
         * */
        const LoadingContructor = Vue.extend(Loading);
        /**
         * 2.根据构造函数创建实例对象
         * */
        const LoadingInstance = new LoadingContructor;
        /**
         * 3.随便创建一个标签（元素）
         * */
        let oDiv = document.createElement('div');
        /**
         * 4.将创建好的标签添加都界面上
         * */
        document.body.appendChild(oDiv);
        /**
         * 5.将创建好的实例对象挂载到创建好的元素上
         * */
        LoadingInstance.$mount(oDiv);
        if (options && options.title !== null && options.title !== undefined) {
            LoadingInstance.title = options.title
        }
        // 添加实例方法
        Vue.prototype.$showLoading = () => {
            LoadingInstance.showNum++;
        };
        Vue.prototype.$hiddenLoading = () => {
            LoadingInstance.showNum--;
            if (LoadingInstance.showNum < 1) {
                LoadingInstance.showNum = 0;
            }
        }
    }
}
